# 
# Created with PyCharm.
# Description :
# User: jiume
# Date: 2024-12-07
# Time: 13:50
#
from multiprocessing.managers import DictProxy


# # Dog 是类名，通常首字母大写，后面跟着"()"
# class Dog():
#     # 类中存在 属性 与 行为(被封装成方法)
#     # 下面的 name 与 age 都是属性 —> 类属性
#     name=''
#     age=0
#
#     # 在 __init__方法中定义的是属于实例属性
#     def __init__(self):
#         self.sex = '♂'
#
#
# dog1 = Dog()
# dog2 = Dog()
# dog3 = Dog()


# class Dog():
#     # 类属性
#     sort='中华田园犬'
#     # 初始化对象的方法（构造方法）——>每个对象在创建时，都会调用它
#     # 如果这里的name与age不使用"self."的话，就是一个局部变量了，而不再是实例变量
#     def __init__(self, name, age):
#         # 实例属性
#         self.name = name
#         self.age = age
#     # 静态方法
#     @staticmethod
#     def bark():
#         print('这是一个静态方法，里面不能出现与实例相关的属性或者方法')
#     # 类方法
#     @classmethod
#     def sort(cls):
#         print('这是一个类方法，里面也不能出现与实例相关的属性或者方法')
#     # 实例方法
#     def roll(self):
#         print(f'{self.name}正在地上打滚~')
#
# # 实例化一个对象
# # 实例属性与实例方法是通过对象去调用的
# dog = Dog('大白', 5) # 需要传入参数构造对象(__init__)
# dog.roll()
# # 类属性、类方法、静态方法等都是通过类名去调用的
# Dog.bark()
# Dog.sort()


# class Cat():
#     id = '猫'
#     # 类方法
#     @classmethod
#     def sort(cls):
#         print(f'这是{cls.id}')
#     # 静态方法
#     @staticmethod
#     def roll():
#         print('正在地上滚来滚去~')
#
# cat = Cat()
# cat.sort()
# cat.roll()